{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [],
   "source": [
    "### 关键信息总结 ###\n",
    "\n",
    "from openai import OpenAI\n",
    "\n",
    "client = OpenAI(\n",
    "    #api_key=os.getenv(\"DASHSCOPE_API_KEY\"),\n",
    "    api_key=\"sk-b571bfbe652b4ec68ac0491e33949622\", # 这种写法不好，泄露了api-key。 回头正式部署时改掉。\n",
    "    base_url=\"https://dashscope.aliyuncs.com/compatible-mode/v1\",\n",
    ")\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "prompt_tokens:3178\n",
      "completion_tokens:189\n",
      "total_tokens:3367\n",
      "\n",
      "- 目的：强化公司内部管理，控制资金，降低风险，规范财务借款报销。\n",
      "- 依据：国家财经制度，公司实际情况。\n",
      "- 适用范围：公司各部门、员工，分（子）公司参照执行。\n",
      "- 职责：各部门/分（子）公司/项目组负责内控管理，财务人员审核票据。\n",
      "- 借款管理：限3000元以上采购，20个工作日内报销，逾期扣工资。\n",
      "- 差旅报销：合法、真实票据，标准内报销，特殊情况需审批。\n",
      "- 日常报销：差旅、一般费用，标准内报销，特殊原因需审批。\n",
      "- 报销时间：每月10日、20日提交，5日、20日统一支付。\n",
      "- 发票管理：A4纸横向粘贴，不得少于报销金额，增值税发票需验证。\n"
     ]
    }
   ],
   "source": [
    "def llm_ExtractKeyInfo_prompt(context_str):\n",
    "    query = f\"\"\"\n",
    "    ---------------------\\\n",
    "    # OBJECTIVE #\n",
    "    Summarize the following CONTEXT.\\\n",
    "    ensuring that the summary accurately captures the semantic information and key concepts presented. \\\n",
    "    The summary should be concise yet comprehensive, suitable for integration into a RAG (Retrieval-Augmented Generation) model's semantic indexing system.\\\n",
    "    摘要应以清晰的列表形式呈现，每个关键概念或语义元素后应跟随其简短解释或重要性说明。例如，如果文本是关于气候变化的学术文章，摘要应该包括关键术语如'全球变暖'、'温室气体排放'和'可再生能源'等，以及它们之间的主要联系和影响。\\\n",
    "    ---------------------\\\n",
    "    # CONTEXT #\n",
    "    {context_str}\\\n",
    "    ---------------------\\\n",
    "    # STYLE #\n",
    "    信息性摘要：这种风格的摘要提供文本的主要信息，不包含个人意见或解释，力求客观。\n",
    "    ---------------------\\\n",
    "    # 约束 #\n",
    "    - 不要包括context中没有的内容. \\\n",
    "    - 摘要应控制在100字以内.\\\n",
    "    - 无需前言和总结.\\\n",
    "    - Reply in Chinese.\\\n",
    "    ---------------------\\\n",
    "    \"\"\"\n",
    "    prompt = f\"\"\"\n",
    "    \"\"\"\n",
    "\n",
    "    completion = client.chat.completions.create(\n",
    "        model=\"qwen2-7b-instruct\",\n",
    "        messages=[{'role': 'system', 'content': prompt},\n",
    "                  {'role': 'user', 'content': query}],\n",
    "        )\n",
    "    \n",
    "    # WARNING:过长的prompt_token会导致上下文失效\n",
    "    print(\"prompt_tokens:\"+str(completion.usage.prompt_tokens))\n",
    "    print(\"completion_tokens:\"+str(completion.usage.completion_tokens))\n",
    "    print(\"total_tokens:\"+str(completion.usage.total_tokens))\n",
    "    print()\n",
    "    \n",
    "    return completion.choices[0].message.content\n",
    "\n",
    "context_str = \"\"\"\n",
    "\n",
    "第一部分总则\n",
    "1. 目的\n",
    "为加强公司内部管理，有效进行资金控制，降低资金风险，规范公司财务借 款报销行为，根据国家相关法律法规及公司财务管理需要和实际情况，特制订本 办法。\n",
    "2. 依据\n",
    "根据国家相关的财经制度及公司的实际情况，分别说明报销相关的借款流程 及各项支出具体的财务报销制度和报销流程，制定本办法。\n",
    "3.适用范围\n",
    "本制度适用于公司各部门，与公司建立劳动关系、劳务关系、实习关系的全 体员工，分(子)公司可参照执行。\n",
    "4.职责\n",
    "各部门/分(子)公司/项目组应当加强对本单位员工出差活动和费用报销的 内控管理，对本单位出差审批、费用报销规模控制负责，财务人员等对员工借款、 费用报销进行审核把关并确认票据的完整、合规。\n",
    "\n",
    "第二部分借款管理及流程\n",
    "1. 员工借款管理规定\n",
    "员工借款限于一次性支付3000元以上公司专项业务及项目所需物资的采 购。借款实行“前款不清，后款不借”原则，借款人应于事后20个工作日内按 报销程序办理报销还款手续。逾期没有报销结账的，将直接从其应发工资、奖金 或其他报销款中扣还，直到扣清为止。因工作需要必须同时产生多项借款的，由 公司领导批复后特殊处理。\n",
    "2. 员工借款流程\n",
    " \n",
    " \t尚博信\n",
    "SUNBOX\t财务报销管理办法\n",
    "借款人在员工自助服务门户上填写借款申请，内容包含：借款人姓名、借款 用途、借款金额、借款事由，财务负责借款审批及借款资金发放。\n",
    "\n",
    "第三部分日常费用报销制度及流程\n",
    "1. 日常费用报销管理规定\n",
    "日常费用报销包括差旅报销及一般报销。差旅报销包括出差交通工具费、交 通费及住宿费；一般报销包括招待费、市内交通费、租车费、购书费、办公费、 打印费、团建费、工作餐等。\n",
    "2. 差旅报销制度及流程\n",
    "2.1 差旅管理规定\n",
    "2.1.1  出差人员应对相关费用票据来源的合法性、内容的真实性负责，严格按 规定开支差旅费。报销的各类发票，必须真实有效、合法合理，票据须 完整无损，内容填列齐全，所附原始单据要分类粘贴，分类计算报销金 额，原则上不同城市的发票分别粘贴在不同的粘贴单上，方便分类计算。\n",
    "2.1.2  出差人员应选择符合交通费标准的交通工具出行，在保障差旅效率的基 础上尽量节约成本。出差尽可能选择直线路线，如确需经非出差地点转 乘飞机、火车，应根据就近中转的原则，在中转地逗留时间不得超过一 天，否则除不予报销无故逗留期间的差旅费外，公司将依情节轻重论处。\n",
    "2.1.3  由于特殊原因，员工出差期间需中途返家探亲的，须事先征得项目群经 理批准。其差旅报销的往返路费不得超过正常出差往返实际路费总额， 路费票据应真实合理，且报销时应附全程车票。员工往返家与工作地之 间不视为出差，公司不承担该期间的任何费用。\n",
    "2.1.4  出差过程中因工作原因发生的订票费、退票费及改签费等根据实际发生 情况凭据报销。住宿费在标准限额内凭发票据实报销。城市间交通费或 住宿费超标准的，超额部分自理；如遇到春运、旅游旺季、紧急出差等 特殊原因造成费用超标的，需经项目群经理报财务总监邮件审批，审批 通过后把审批单附于纸质报销单后超出部分可予以报销.\n",
    " \n",
    " \t尚博信\n",
    "SUNBOX\t财务报销管理办法\n",
    "2.1.5     如预期出差超过1个月，原则上应在当地租房.2人以上(含2人)前 往同一地点出差，性别相同的人员原则上住宿必须安排为标准双人间或 标准三人间，且按照一人住宿费标准报销。如客户方或会议主办方已经 安排酒店住宿，公司不再报销住宿费用。\n",
    "2.1.6 住宿费报销应提供住宿发票及酒店结算单，如无结算单，住宿发票应备 注清楚具体的入离店时间。\n",
    "2.1.7 本市出差当天返回，据实报销交通费，如无紧急事情，原则上应乘坐公 共交通工具，市内出差及短途出差不予发放出差补贴。\n",
    "2.1.8 出差人员在出差途中应与公司保持联系，如因病或遇意外灾害，或工作 实际需要，出差时间需延长时，应取得有出差审批权的领导同意，不得 因私事或无故延长出差时间，否则除不予报销无故延长出差期间的差旅 费外，公司将依情节轻重论处。\n",
    "2.2 差旅费用标准\n",
    "2.2.1    交通工具选择标准：员工乘坐火车全程8小时以内要求选用火车出行， 超过8小可以选择飞机出行。在选择交通工具时，普通火车可选择全部 席位，高铁/动车选择二等座、硬卧，飞机选择经济舱。如遇同一时间段， 经济舱价格低于火车价格，可以选择价格较低者。\n",
    "2.2.2 市内交通费标准：从工作地点到达机场、火车站、汽车站可以选择出租 车出行，单程费用标准为150元包含过路及过桥费(出发城市和到达城 市分别计为两个单程市内交通出行),据实报销，超标自付，欠标不补。\n",
    "2.2.3  住宿标准：\n",
    "\n",
    "地区\t住宿费标准(元/天)\n",
    "北京、上海、广州、深圳\t350\n",
    "各省省会城市及直辖市(天津、重庆) 及计划单列市(大连、青岛、宁波、厦 门 )\t250\n",
    "其他城市\t200\n",
    "\n",
    " \n",
    " \t尚博信\n",
    "SUNBOX\t财务报销管理办法\n",
    "2.3  差旅补助\n",
    "2.3.1 国内差旅补助是指对员工因公出差期间发生的用餐、市内交通费及杂费 给予的补助费用\n",
    "2.3.2 国内差旅补助按出差自然日(参照日历)计算，当连续出差低于28 个自 然日依据50元/天的费用补助标准计算，当连续出差超过28 个自然日 依据100元/天费用补助标准计算。差旅补助合并到工资里发放，并依 法扣缴个人所得税。\n",
    "2.4 差旅报销流程\n",
    "2.4.1 出差人员在出差前，需要在公司员工自助服务门户上填写差旅申请，详 细注明出差地点、目的、行程安排及预计差旅费用等，提交项目经理、 项目群经理进行审批，审批结束后方可出差。\n",
    "2.4.2 员工出差结束后应在20个工作日内在公司自助服务门户中填写差旅报 销流程，手动关联差旅申请。员工根据实际出差情况填写正确的开始时 间、结束时间，根据费用类型添加相关收据信息。连续出差时间达到28 个自然日及以上选择差旅报销中长期出差选项。差旅费报销时应当提供 机票或车票、住宿费发票等相关凭证。员工出差无城市间交通票据的， 不得报销住宿费和市内交通费。\n",
    "3.一 般报销制度及流程 3.1一般报销管理规定\n",
    "3.1.1  招待费：如餐费等(不能报销票据：礼品、食品、娱乐内容),招待前   需发项目群经理邮件审批，审批通过后方可招待，事后申请不予以报销。\n",
    "3.1.2  交通费：包含市内交通费及出差当地交通费，如出租车票、地铁票、公 交票、汽车油票、过桥过路费票、停车费等，员工因工作需要加班者， 加班至22:00以后，可以选择乘坐出租车回家，公司给予报销。须在员 工自助服务门户填写报销申请时注明始发地点、到达地点、事由、同行 人员及金额。过桥过路费随同出租发票一起报销，不得单独报销.\n",
    "3.1.3    租车费：如租车费发票等，须在员工自助服务门户填写报销申请时注 明：产生租车费用的具体事件，起始时间，用车人员姓名及人数等。\n",
    " \n",
    " \t尚博信\n",
    "SUNBOX\t财务报销管理办法\n",
    "3.1.4  购书费：购书发票需附供应商盖章的购书清单，方可有效。\n",
    "3.1.5      办公费：如办公用品、耗材、电脑配件等，发票内容为具体购买商品明  细，不能笼统的开项目统称，有实物的需要办理入库手续及提供入库单。\n",
    "3.1.6.    打印费：如标书、项目资料打印等，须在员工自助服务门户填写报销申\n",
    "请时注明费用所需项目名称。\n",
    "3.1.7  电脑补贴随同工资一起发放，合并工资缴纳个人所得税，不单独报销。\n",
    "3.1.8  团建费：公司或部门每季度最多可组织一次员工团建，团建前需报项目 群经理审批，审批通过后方可进行团建，团建后在员工自助服务门户填 写一般报销，注明：聚餐人员姓名、人数、具体明细事件，并附餐费清 单明细.\n",
    "3.1.9  工作餐：员工因工作需要加班者，可报销加班餐。须在员工自助服务门 户填写报销申请时注明加班时间及具体人员\n",
    "3.1.10     长期出差租房及日用品费用：长期出差租房，应以公司名义签订房屋租 赁合同，并取得房租发票，方可报销。租房期间发生的日用品，按照实 际发生金额报销。\n",
    "3.1.11 其他类型：其他类型发票按照实际的名目填写，也可先与财务沟通后填 写。\n",
    "3.1.12     特殊原因造成费用超标的，需经项目群经理报财务总监邮件审批，审批 通过后，把审批单附于纸质报销单后方予以报销。\n",
    "3.2 一般报销费用标准\n",
    "3.2.1     交通费：员工因工作需要加班者，加班至22:00以后，可以选择乘坐出 租车回家。\n",
    "3.2.2   工作餐：员工因工作需要加班者，工作日期间公司给予不超过30元/ 人/晚的晚餐补助；周末或者节假日给予不超过50元/人/天补助。需 要提供发票在标准内据实报销，超标自付，欠标不补。\n",
    "3.2.3   团建费：费用标准不超过80元/人/季度\n",
    "3.3 一般报销流程\n",
    "员工在自助服务门户填写一般报销，根据实际发票费用类型录入收据信\n",
    " \n",
    "\n",
    "尚博信\n",
    "SUNBOX\t财务报销管理办法\n",
    "息，提交项目经理、项目群经理、财务总监、财务经理审批。\n",
    "\n",
    "\n",
    "第四部分报销时间及发票管理\n",
    "1. 报销时间\n",
    "每月10日、20日之前员工在公司员工自助服务门户上提交费用报销流程， 审批流程到达财务审批节点时，将粘贴好的报销票据提供至财务处，财务于每月 5日、20日统一支付，遇节假日前后调整。\n",
    "2.  发票粘贴及管理要求\n",
    "2.1         A4纸横向粘贴，左上角对齐。页眉处写好0A流程编号，部门及姓名， 报销合计金额。注意一个流程对应一笔金额，发票单独粘贴。示例见附 件\n",
    "2.2   一般报销和差旅报销要求发票累计金额不得小于报销金额。\n",
    "2.3    增值税发票的特殊性，污损、破损、折皱的发票不能报销，要保证发票 的完整和平整，否则会影响增值税发票校验和进行税额的抵扣。\n",
    "2.4         员工报销必须提供真实有效的发票，本人为发票真实性负责，如后期税 务稽查发现虚假发票员工需自行承担相应的责任(不限于罚款、滞纳金、 个人诚信等)及税务现场情况说明。为了防止虚假发票的现象发生，员 工取得发票后要求先在国家税局网站鉴别发票真伪(除交通工具类和交  通费外所有发票都需查验)查询完发票真伪后，把鉴定证明截屏打印附 在发票后面一起交到财务部门。\n",
    "增值税发票查询网址： https://inv-veri.chinatax.gov.cn7.2\n",
    "\n",
    "\n",
    "第五部分   附则\n",
    "1.本制度解释权归公司财务部\n",
    "\n",
    "2.本制度于2021年5月1日生效执\n",
    "\n",
    "\n",
    "\"\"\"\n",
    "\n",
    "summary_text = llm_ExtractKeyInfo_prompt(context_str) \n",
    "#summary_dict = json.loads(summary_text)\n",
    "print(summary_text)\n",
    "#print(summary_dict)\n"
   ]
  }
 ],
 "metadata": {
  "language_info": {
   "name": "python"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
